package com.wyp.demo.generic;

import lombok.Data;

//泛型类
@Data
public class GenericClassExample<T> {
    //member这个成员变量的类型为T,T的类型由外部指定
    private T member;

    //泛型构造方法形参member的类型也为T，T的类型由外部指定
    public GenericClassExample(T member) {
        this.member = member;
    }

    /**
     * 返回值 T也是由外部指定.
     *
     * @param target
     * @return
     */
    public T handleSomething(T target) {
        return target;
    }

    public String sayHello(String name) {
        return "Hello " + name;
    }

    //泛型方法  T可以与泛型类表示字母一样，但是在使用的时候可以传递和泛型类不一样的类型数据
    public static <T> void printArray(T[] inputArray) {
        for (T element : inputArray) {
            System.out.printf("%s", element);
            System.out.printf(" ");
        }
        System.out.println();
    }
}
